/**
 * <pre>
 * Title:       TransType.java
 * Project:     HappyLottery
 * Author:      linriqing
 * Create:      2013-4-15 下午04:55:45
 * Copyright:   Copyright (c) 2013
 * Company:     Shenzhen Helper
 * <pre>
 */
package com.hengpeng.msls.port.client.vo.client;

import com.hengpeng.msls.port.client.message.AccountLogMessage;
import com.hengpeng.msls.port.client.message.AccountMessage;
import com.hengpeng.msls.port.client.message.AndroidClientVersionMessage;
import com.hengpeng.msls.port.client.message.ArticleDiscussMessage;
import com.hengpeng.msls.port.client.message.ArticleMessage;
import com.hengpeng.msls.port.client.message.BindCardRequest;
import com.hengpeng.msls.port.client.message.BindingBankCardMessage;
import com.hengpeng.msls.port.client.message.BorrowInfoQueryMessage;
import com.hengpeng.msls.port.client.message.ClientVersionInfo;
import com.hengpeng.msls.port.client.message.CreditAssignQueryMessage;
import com.hengpeng.msls.port.client.message.FindPwdMessage;
import com.hengpeng.msls.port.client.message.InvestMessage;
import com.hengpeng.msls.port.client.message.InvestQueryMessage;
import com.hengpeng.msls.port.client.message.LetterMessage;
import com.hengpeng.msls.port.client.message.LoginMessage;
import com.hengpeng.msls.port.client.message.MemberInfoMessage;
import com.hengpeng.msls.port.client.message.MyBorrowQueryMessage;
import com.hengpeng.msls.port.client.message.MyInviteQueryMessage;
import com.hengpeng.msls.port.client.message.MyRebateQueryMessage;
import com.hengpeng.msls.port.client.message.MyRedPacketQueryMessage;
import com.hengpeng.msls.port.client.message.OpenRequestMsg;
import com.hengpeng.msls.port.client.message.PayRequest;
import com.hengpeng.msls.port.client.message.PrivateMessage;
import com.hengpeng.msls.port.client.message.QueryArticleMessage;
import com.hengpeng.msls.port.client.message.TransMessage;
import com.hengpeng.msls.port.client.message.UserBankCardMessage;
import com.hengpeng.msls.port.client.message.UserDrawMessage;
import com.hengpeng.msls.port.client.message.UserSetProtectPwdMessage;
import com.hengpeng.msls.port.client.message.WXMemberInfoMessage;

/**
 * <pre>
 * 客户端交易类型
 * </pre>
 * 
 * @author linriqing
 * @version 1.0, 2013-4-15
 */
public enum WapTransType {
    /**
     * 身份认证
     */
    IdentityAuth(PrivateMessage.class, TransMessage.class),
    /**
     * 站内信
     */
    RecieveMessage(LetterMessage.class, LetterMessage.class),
    /**
     * 共享登录预调用
     */
    ShareLogin(LoginMessage.class, LoginMessage.class),
    /**
     * 登录, 包括部分快登回调
     */
    Login(LoginMessage.class, LoginMessage.class),
    /**
     * 充值
     */
    Pay(PayRequest.class, PayRequest.class),
    /**
     * 注册
     */
    Register(LoginMessage.class, LoginMessage.class),
    /**
     * 开户
     */
    Open(OpenRequestMsg.class, OpenRequestMsg.class),
    /**
     * 异常报告
     */
    CrashReport(TransMessage.class, TransMessage.class),
    /**
     * 客户端版本信息
     */
    ClientVersion(ClientVersionInfo.class, ClientVersionInfo.class),
    /**
     * 资金明细
     */
    AccountLogQuery(AccountLogMessage.class, AccountLogMessage.class),

    /**
     * 首页滚动新闻查询
     */
    IndexScrollNews(ArticleMessage.class, ArticleMessage.class),

    /**
     * 首页新闻列表查询
     */
    IndexNewsList(ArticleMessage.class, ArticleMessage.class),

    /**
     * 根据新闻id查询新闻详情
     */
    IndexNewById(QueryArticleMessage.class, QueryArticleMessage.class),

    /**
     * 新闻评论请求
     */
    ArticleDiscuss(ArticleDiscussMessage.class, ArticleDiscussMessage.class),

    /**
     * 绑定微信账号
     */
    WxAddMemberInfo(WXMemberInfoMessage.class, WXMemberInfoMessage.class),
    /**
     * 修改绑定微信账号
     */
    WxEditMemberInfo(WXMemberInfoMessage.class, WXMemberInfoMessage.class),

    /**
     * 检查版本号请求
     */
    AndroidClientVersion(AndroidClientVersionMessage.class, AndroidClientVersionMessage.class),
    /**
     * 借款标的信息列表
     */
    BorrowInfoQuery(BorrowInfoQueryMessage.class, BorrowInfoQueryMessage.class),
    /**
     * 借款标的信息详细
     */
    BorrowInfoDetail(BorrowInfoQueryMessage.class, BorrowInfoQueryMessage.class),

    /**
     * 我的红包信息查询
     */
    MyRedPacketQuery(MyRedPacketQueryMessage.class, MyRedPacketQueryMessage.class),
    
    /**
     * 我的可用红包信息查询（用于投资）
     */
    MyCanuseRedPacketQuery(MyRedPacketQueryMessage.class, MyRedPacketQueryMessage.class),
    /**
     * 我的返利信息查询
     */
    MyRebateQuery(MyRebateQueryMessage.class, MyRebateQueryMessage.class),
    /**
     * 投标
     */
    Invest(InvestMessage.class, InvestMessage.class),
    /**
     * 我的投标记录查询
     */
    MyInvestQuery(InvestQueryMessage.class, InvestQueryMessage.class),
    /**
     * 投标记录明细
     */
    MyInvestDetail(InvestQueryMessage.class, InvestQueryMessage.class),
    /**
     * 我的融资记录查询
     */
    MyBorrowQuery(MyBorrowQueryMessage.class, MyBorrowQueryMessage.class),
    /**
     * 融资记录明细
     */
    MyBorrowDetail(MyBorrowQueryMessage.class, MyBorrowQueryMessage.class),
    /**
     * 债权转让查询
     */
    CreditAssignQuery(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),
    /**
     * 我的可转让债权查询
     */
    MyCanAssignQuery(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),

    /**
     * 我的转让中的债权查询
     */
    MyAssigningQuery(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),
    /**
     * 我的已转让的债权
     */
    MyAssignedQuery(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),
    /**
     * 我的已购买的债权
     */
    MyBuyedAssignQuery(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),

    /**
     * 发布债权
     */
    PublishAssign(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),
    /**
     * 购买债权
     */
    BuyAssign(CreditAssignQueryMessage.class, CreditAssignQueryMessage.class),
    /**
     * 账户查询
     */
    AccountQuery(AccountMessage.class, AccountMessage.class),
    /**
     * 用户提现
     */
    UserDraw(UserDrawMessage.class, UserDrawMessage.class),
    /**
     * 找回密码,修改登录密码
     */
    UpdateLoginPwd(FindPwdMessage.class, FindPwdMessage.class),
    /**
     * 手机发送短信验证码以找回密码
     */
    SendSmsForFindPwd(FindPwdMessage.class, FindPwdMessage.class),
    /**
     * 退出
     */
    LoginOut(PrivateMessage.class, PrivateMessage.class),

    /**
     * 银行卡管理
     */
    UserBankCard(UserBankCardMessage.class, UserBankCardMessage.class),
    /**
     * 银行卡绑定
     */
    BindingBankCard(BindingBankCardMessage.class, BindingBankCardMessage.class),
    /**
     * 实名认证
     */
    Authentication(MemberInfoMessage.class, MemberInfoMessage.class),
    /**
     * 修改登录密码
     */
    UpdatePassword(LoginMessage.class, LoginMessage.class),
    /**
     * 设置密保
     */
    SetQuestion(UserSetProtectPwdMessage.class, UserSetProtectPwdMessage.class),
    /**
     * 修改密保
     */
    UpdateQuestion(UserSetProtectPwdMessage.class, UserSetProtectPwdMessage.class),
    /**
     * 手机号绑定
     */
    MobileBind(LoginMessage.class, LoginMessage.class),
    /**
     * 手机验证发送短信验证码
     */
    SendSMSForValidMobile(LoginMessage.class, LoginMessage.class),
    /**
     * 绑定邮箱发送验证链接
     */
    sendValidEmail(LoginMessage.class, LoginMessage.class),
    
    UserBindCard(BindCardRequest.class, BindCardRequest.class),
    
    MyInviteQuery(MyInviteQueryMessage.class, MyInviteQueryMessage.class);

    private Class<?> requestType;

    private Class<?> responseType;

    WapTransType(Class<?> requestType, Class<?> responseType) {
        this.responseType = responseType;
        this.requestType = requestType;
    }

    public Class<?> getRequestType() {
        return requestType;
    }

    public Class<?> getResponseType() {
        return responseType;
    }
}
